package com.lonewalker.sparrow.annotation;

import java.lang.annotation.*;

/**
 * @author LoneWalker
 * @version 4.0
 */
@Documented
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface AvoidReSubmit {

    /**
     * 防重提交，支持两种，一个是方法参数，一个是令牌
     */
    enum Type {
        /**
         * 接口参数
         */
        PARAM,
        /**
         * 身份令牌
         */
        TOKEN
    }
    /**
     * 默认防重提交，是方法参数
     * @return 类型
     */
    Type limitType() default Type.PARAM;
    /**
     * 加锁过期时间，默认是5秒
     * @return 过期时间
     */
    long lockTime() default 5;
}
